|
 |
Applicazioni Software |
PROGETTO n° 06 - 9/12
[96 di 166] |
 | Se la meccanica dell'assunzione del dato è affidata
alla
Procedura
Mpx_Dato, per la sua reale disponibilità è
necessario gestire le linee di controllo
del convertitore, fornendo su di esse i
livelli logici aspettati. |
| |
|
Effettiva Lettura del bus
dati del Convertitore |
 | La
Procedura
Leggi gestisce
tutta la fase di lettura del
dato a 8 bit, a cominciare dai segnali che bisogna fornire
al convertitore
ADC0804 per obbligarlo a mettere in
uscita il byte da esso generato nella fase precedente. |
 | Il termine
dalla conversione è stato segnalato da un livello logico 0 sulla linea INTR
(letta dalla
Procedura
Converti, vista
in precedenza,
sul bit3 del
Registro d'ingresso
0379H/0279H
della porta parallela, sul pin 15
del suo
connettore). |
 | In corrispondenza di questo evento gli 8
bit di dato sono conservati nel
latch interno dell'ADC
e non sono ancora disponibili. |
 | Per poterlo trasferire sul
bus dati è necessario
attivare la linea
RD insieme al segnale
CS; questa procedura ricostruisce la
sequenza temporale. |
 | Per trasferire il
dato convertito dal latch interno
al bus dati è necessario forzare a 0
la linea RD (pin
2) insieme al segnale
CS (pin 1), posto a 0
solo qualche istante prima
per riabilitare il funzionamento del chip. |
 | La procedura
simula i 2 segnali
CS e
RD
programmando rispettivamente i bit0 e bit1 del
Registro d'uscita 0378H/0278H
della porta parallela, disponibili rispettivamente sui
pin 2 e 3
del suo
connettore. |
 | La procedura di ritardo concede al convertitore il tempo (135 ns)
per trasferire il dato sulle otto linee d'uscita (fino a quel momento in alta
impedenza) dal latch interno. |
 | Poichè il dato è ora disponibile si provvede
alla sua lettura, delegando a ciò la
Procedura
Mpx_Dato,
descritta nella pagina precedente; poichè la fase successiva può corrompere il dato appena
assunto in AL, si provvede al suo salvataggio temporaneo nello
stack. |
 | Dopo circa 300 ns
dalla lettura del dato il convertitore provvede
automaticamente a ripristinare la linea INTR,
riportandola a 1. |
 | Per assicurare le successive conversioni
bisogna disattivare (cioè portare a 1) il
segnale di lettura,
RD, e naturalmente
anche CS |
 | Il costruttore
suggerisce di attendere almeno 8 cicli di clock
(cioè almeno 12
µs con clock a
640 kHz) per garantire che il prossimo controllo sul
segnale di INTR sia attendibile; per questo la semplice chiamata di
Delay è
in questo caso insufficiente: |
 |
NB:
Data la assoluta inaffidabilità della
procedura di ritardo,
assolutamente dipendente
dalla velocità del processore,
con processori veloci può essere necessario aumentare il numero
150 caricato
in CX,
o addirittura incrementare il numero di
istruzioni dummy
eseguite dalla
Delay
stessa... |
 | Si può ipotizzare che la lettura avvenga sul
fronte di salita del segnale
RD: dopo 125 ns
da questo istante le otto linee d'uscita tornano in
alta impedenza. |
 | La procedura ha termine con il recupero in
AL del valore
precedentemente salvato nello
stack: |
©
2001-2006 - Studio Tecnico
ing. Giorgio OBER
Tutti i diritti sono riservati
|